home *** CD-ROM | disk | FTP | other *** search
/ Libris Britannia 4 / science library(b).zip / science library(b) / PROGRAMM / DB_CLIPP / 0643A.ZIP / SHOWRC.PRG < prev    next >
Text File  |  1987-04-24  |  2KB  |  66 lines

  1. * Program ...: Scrolrec
  2. * Author ....: Saul Shiffman, with inspiration from A-T TechNotes routines
  3. * Date ......: 3/29/87
  4. * Note(s) ...: Selects a record from a database
  5. *  Displays data from database records and allows user to scroll through
  6. *   them and select a record.
  7. *   The database should be open to a starting record when calling;
  8. *   The pointer is set to the selected record, and RECNO is set to RECNO(),
  9. *    UNLESS the user exited by pressing ESC, in which case, the RECNO() 
  10. *    pointer is meaningless and RECNO=0
  11. * EXPRESS is a C memvar containing a C expression that must
  12. *   evaluate to a FIXED LENGTH character string
  13. * RECNO returns the record number, =0 if hit ESC
  14. PARAMETERS ROW, COL, EXPRESS,RECNO
  15. PRIVATE ESC,UPARROW,DNARROW,ENTER,KEY
  16. * ---Key definitions.
  17. ESC      = CHR(27)
  18. UPARROW  = CHR(5)
  19. DNARROW  = CHR(24)
  20. ENTER    = CHR(13)
  21. KEY = CHR(0)
  22.  
  23. DO WHILE .NOT. (KEY=ENTER .OR. KEY=ESC)
  24.   SET COLOR TO N/W
  25.   @ ROW, COL SAY &EXPRESS && Show EXPRESS in reverse video
  26.   SET COLOR TO W/N
  27.   KEY = CHR(0)
  28.   * ---Get key.
  29.   SET ESCAPE OFF
  30.  
  31.   DO WHILE .NOT. (KEY $ (ESC + ENTER + DNARROW + UPARROW) )
  32.     KEY = UPPER(CHR(INKEY()))
  33.   ENDDO   ....  WHILE .NOT. (KEY $ (ESC + ENTER + DNARROW + UPARROW) )
  34.  
  35.   SET ESCAPE ON
  36.  
  37.   DO CASE
  38.  
  39.     CASE KEY = ESC
  40.       RECNO=0       
  41.  
  42.     CASE KEY = DNARROW
  43.  
  44.       IF EOF() 
  45.         ?? CHR(7) && error: can't go beyond EOF
  46.       ELSE   ....  IF not  EOF() 
  47.         SKIP 
  48.       ENDIF   ....  IF EOF() 
  49.  
  50.     CASE KEY = UPARROW
  51.  
  52.       IF BOF() 
  53.         ?? CHR(7) && error: can't go beyond BOF
  54.       ELSE   ....  IF not  BOF() 
  55.         SKIP -1
  56.       ENDIF   ....  IF BOF() 
  57.  
  58.     CASE KEY = ENTER
  59.       RECNO=RECNO()       
  60.  
  61.   ENDCASE
  62.  
  63. ENDDO   ....  WHILE .NOT. (KEY=ENTER .OR. KEY=ESC)
  64.  
  65. RETURN
  66.